Computing devices enabled with appropriate software programs can be used to create images that are viewed on a display or rendered in another medium such as print or video. Software programs that enable creating computing device images are generically referred to herein as “graphic applications.” Graphic applications may be primarily used to create images or may provide image creation functions in addition to functions not directly related to image creation. An important subset of graphic applications are two-dimensional, i.e., 2D, graphic applications, which are used for drawing, painting, printing, image editing, photo editing, video editing, etc.
A common problem in 2D graphic applications is accessing and changing the relative depth of occluded visual objects in a 2D graphic image. For example, during the construction of a 2D drawing, a visual object, e.g., a object, may completely overlap another object causing the overlapped object to become occluded. Because the underlying object is no longer visible, it may be difficult or impossible to select the underlying object. Even if part of the underlying object is visible, the exposed part may be too small to be easily accessible. Complete or partial occlusion problems can occur whether the visual objects are discretely defined objects, i.e., objects with well-defined borders, or objects with blurred edges such as in a photographic image. If a visual object, i.e., an object, cannot be selected, it is difficult to apply an action to the object such as changing the relative depth of the object.
It is convenient to think of a group of overlapping objects as a stack of infinitely thin paper cutouts. In this model, there is no true depth dimension, only dimensions along the X axis and Y axis. There is a depth order that is referred to as the “Z-order” because it is defined along the Z axis. The infinitely thin paper cutouts, i.e., objects, are stacked in Z-order with each object having a Z index indicating the object's location in the stack. Depending on the graphics system used, the ordering may be front to back, i.e., 0 index in front, or back to front, i.e., 0 index in back. For the problem of accessing overlapping objects, the relative order of the object is of more concern than the absolute ordering. In a stack of overlapping objects, an overlapping object is the “upper” object and the overlapped and perhaps occluded object is the “lower” object.
Barring other affordances, selecting and manipulating occluded objects requires an upper object to be moved in the X-Y plane in order to access a lower object. Unless there is an easy way to retain the original X-Y location of the upper object, it may be difficult to return the moved upper object to the upper object's original location. To avoid changing the X-Y location of objects, there are controls that enable successively cycling through a stack of objects until an object is “lifted” or “sunk” to the desired Z-index. Another approach that preserves X-Y locations is a scene index. A scene index is an ordered linear list of thumbnails, i.e., small pictures, of the objects in an image. Moving an object's thumbnail up or down in the scene index causes the object to move up or down, i.e., changes the Z-index of the object.
Moving occluding objects and cycling objects are viable solutions to the occluded content problem until the total number of objects in an image grows large. For example, given a dozen or so objects, moving occluding objects or cycling through objects often requires adjusting each object more than once. The more objects in a stack of objects, the more likely it is that each object will need to be adjusted. Using a scene index is less troublesome in this respect, but has another limitation. The thumbnails in a scene index tend to reduce or eliminate identifying features of objects, e.g., shape, color, size, position. For example, if there are a half-dozen red circles of varying sizes and shades in an image, all six images may appear as similarly sized red circles in the scene index. Another disadvantage of a scene index is that in order to include every object in an image, a scene index can grow larger than screen height requiring the user to scroll through the scene index.